/* Copyright 2018 JDCLOUD.COM

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

http:#www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.





Contact: 

NOTE: This class is auto generated by the jdcloud code generator program.
*/

 

#ifndef IothubModel_h
#define IothubModel_h

@interface OmPropVo :NSObject

/// Uuid
@property (strong,nonatomic,nonnull)  NSString*  uuid;

/// OmId
@property (strong,nonatomic,nonnull)  NSString*  omId;

/// OmName
@property (strong,nonatomic,nonnull)  NSString*  omName;

/// AttrName
@property (strong,nonatomic,nonnull)  NSString*  attrName;

/// AttrText
@property (strong,nonatomic,nonnull)  NSString*  attrText;

/// AttrType
@property (strong,nonatomic,nonnull)  NSString*  attrType;

/// UserPin
@property (strong,nonatomic,nonnull)  NSString*  userPin;

/// InstanceId
@property (strong,nonatomic,nonnull)  NSString*  instanceId;


-(id) initWithUuid:(NSString*) uuid
    omId:(NSString*)omId
    omName:(NSString*)omName
    attrName:(NSString*)attrName
    attrText:(NSString*)attrText
    attrType:(NSString*)attrType
    userPin:(NSString*)userPin
    instanceId:(NSString*)instanceId;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end
@interface DeviceCommandVO :NSObject

/// Name
@property (strong,nonatomic,nonnull)  NSString*  name;

/// InputData
@property (strong,nonatomic,nonnull)  NSString*  inputData;


-(id) initWithName:(NSString*) name
    inputData:(NSString*)inputData;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end
@interface RuleBaseInfo :NSObject

/// 规则Id
@property (strong,nonatomic,nonnull)  NSString*  idValue;

/// 规则名称
@property (strong,nonatomic,nonnull)  NSString*  name;

/// 规则说明
@property (strong,nonatomic,nonnull)  NSString*  desc;

/// 状态，停止:disable,启动:enable
@property (strong,nonatomic,nonnull)  NSString*  status;

/// 创建时间，精确到毫秒
@property (strong,nonatomic,nonnull)  NSString*  createdTime;


-(id) initWithId:(NSString*) idValue
    name:(NSString*)name
    desc:(NSString*)desc
    status:(NSString*)status
    createdTime:(NSString*)createdTime;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end
@interface Action :NSObject

/// ActionId
@property (strong,nonatomic,nonnull)  NSString*  actionId;

/// 动作类型，包括：handle（数据处理）、forward（转发数据）和failure（转发失败）
@property (strong,nonatomic,nonnull)  NSString*  actionType;

/// 操作类型,包括：JCQ、JsScript、Kafka、RabbitMq、RDS和ES
@property (strong,nonatomic,nonnull)  NSString*  operationType;

/// 规则动作的配置信息, Configuration是JSONObject格式，会根据不同的规则动作，形成不同的JSONObject格式，即不同的配置信息格式。
@property (strong,nonatomic,nonnull)  NSObject*  configuration;


-(id) initWithActionId:(NSString*) actionId
    actionType:(NSString*)actionType
    operationType:(NSString*)operationType
    configuration:(NSObject*)configuration;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end
@interface ProductCategory :NSObject

/// 产品分类名称
@property (strong,nonatomic,nonnull)  NSString*  productCategoryName;

/// 产品分类唯一标识
@property (strong,nonatomic,nonnull)  NSString*  productCategoryId;


-(id) initWithProductCategoryName:(NSString*) productCategoryName
    productCategoryId:(NSString*)productCategoryId;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end
@interface ThingModelTemplate :NSObject

/// 物模型模板ID
@property (strong,nonatomic,nonnull)  NSString*  thingModelTemplateId;

/// 模型模板名称
@property (strong,nonatomic,nonnull)  NSString*  thingModelTemplateName;

/// 产品分类名称数组，索引0为一级产品分类名称
@property (strong,nonatomic,nonnull)  NSArray<NSString*>*  productCategoryNames;

/// 产品分类ID数组，索引0为一级产品分类ID
@property (strong,nonatomic,nonnull)  NSArray<NSString*>*  productCategoryIds;

/// 更新时间，时间为东八区（UTC/GMT+08:00）
@property (strong,nonatomic,nonnull)  NSNumber*  updatedTime;

/// 操作人
@property (strong,nonatomic,nonnull)  NSString*  userPin;

/// 物模型文件在oss上的存储路径
@property (strong,nonatomic,nonnull)  NSString*  ossPath;


-(id) initWithThingModelTemplateId:(NSString*) thingModelTemplateId
    thingModelTemplateName:(NSString*)thingModelTemplateName
    productCategoryNames:(NSArray<NSString*>*)productCategoryNames
    productCategoryIds:(NSArray<NSString*>*)productCategoryIds
    updatedTime:(NSNumber*)updatedTime
    userPin:(NSString*)userPin
    ossPath:(NSString*)ossPath;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end
@interface ProductAbility :NSObject

/// 功能唯一标识
@property (strong,nonatomic,nonnull)  NSString*  abilityId;

/// 名称
@property (strong,nonatomic,nonnull)  NSString*  abilityName;

/// 类型,0:属性,1:事件,2:服务
@property (strong,nonatomic,nonnull)  NSNumber*  abilityType;

/// 描述
@property (strong,nonatomic,nonnull)  NSString*  abilityDescription;

/// 读写性,read_only:只读,read_write:读写
@property (strong,nonatomic,nonnull)  NSString*  accessMode;

/// 数据类型
@property (strong,nonatomic,nonnull)  NSString*  abilityDataType;

/// 数据定义
@property (strong,nonatomic,nonnull)  NSString*  abilityDataSpec;

/// 是否为自定义功能,false:否,true:是
@property (strong,nonatomic,nonnull)  NSNumber*  customized;

/// 创建时间,时间为东八区(UTC/GMT+08:00)
@property (strong,nonatomic,nonnull)  NSNumber*  createdTime;


-(id) initWithAbilityId:(NSString*) abilityId
    abilityName:(NSString*)abilityName
    abilityType:(NSNumber*)abilityType
    abilityDescription:(NSString*)abilityDescription
    accessMode:(NSString*)accessMode
    abilityDataType:(NSString*)abilityDataType
    abilityDataSpec:(NSString*)abilityDataSpec
    customized:(NSNumber*)customized
    createdTime:(NSNumber*)createdTime;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end
@interface ProductProperty :NSObject

/// 名称, 1~30个字符，仅支持英文字母、数字、下划线“_”及中划线“-”，必须英文字母及数字开头结尾
@property (strong,nonatomic,nonnull)  NSString*  name;

/// 描述, 0-50个字符
@property (strong,nonatomic,nonnull)  NSString*  descriptionValue;

/// 数据类型，string:字符串，bool:布尔，float:单精度浮点数，double:双精度浮点数，int32:整型，enum:枚举
@property (strong,nonatomic,nonnull)  NSString*  dataType;

/// 单位, 0-10个字符
@property (strong,nonatomic,nonnull)  NSString*  unit;

/// 单位名称, 0-10个字符
@property (strong,nonatomic,nonnull)  NSString*  unitName;

/// 参数最小值(int32, float, double类型时,必填)
   /// 整型取值范围：-2的31次方 ~2的31次方-1
   /// 单精度浮点取值范围：-2的128次方+1 ~2的128次方-1,最多7位小数
   /// 双精度浮点取值范围：-2的1023次方+1 ~2的1023次方-1,最多14位小数
   /// 
@property (strong,nonatomic,nonnull)  NSNumber*  min;

/// 参数最大值(int32, float, double类型时,必填)
   /// 最大值必须大于最小值
   /// 整型取值范围：-2的31次方 ~2的31次方-1
   /// 单精度浮点取值范围：-2的128次方+1 ~2的128次方-1,最多7位小数
   /// 双精度浮点取值范围：-2的1023次方+1 ~2的1023次方-1,最多14位小数
   /// 
@property (strong,nonatomic,nonnull)  NSNumber*  max;

/// 参数步长(int32, float, double类型时,必填)
   /// 整型取值范围：0 ~2的31次方-1
   /// 单精度浮点取值范围：0 ~2的128次方-1,最多7位小数
   /// 双精度浮点取值范围：0~2的1023次方-1,最多14位小数
   /// 
@property (strong,nonatomic,nonnull)  NSNumber*  step;

/// 参数长度(string类型特有时,必填)
   /// 取值范围:1-256之间的整数)
   /// 
@property (strong,nonatomic,nonnull)  NSNumber*  length;

/// 枚举定义信息(enum、bool类型时,必填)
   /// 布尔值名称：不可为空，支持汉字、英文字母、数字。长度为1-10个字符
   /// 枚举值:为字符型，0~99。至少包括两个枚举值。输入“0”时，仅支持1位。其他数字不支持以0开头
   /// 枚举值名称：不可为空，支持汉字、英文字母、数字。长度为1-10个字符
   /// 枚举类型格式如:{10:&quot;on&quot;,10:&quot;off&quot;}
   /// 布尔类型格式如:{&quot;True&quot;:&quot;12&quot;,&quot;False&quot;:&quot;22&quot;}
@property (strong,nonatomic,nonnull)  NSObject*  enumInfo;


-(id) initWithName:(NSString*) name
    descriptionValue:(NSString*)descriptionValue
    dataType:(NSString*)dataType
    unit:(NSString*)unit
    unitName:(NSString*)unitName
    min:(NSNumber*)min
    max:(NSNumber*)max
    step:(NSNumber*)step
    length:(NSNumber*)length
    enumInfo:(NSObject*)enumInfo;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end
@interface MonitorIotHubInstance :NSObject

/// 实例Id
@property (strong,nonatomic,nonnull)  NSString*  instanceId;

/// 用户PIN
@property (strong,nonatomic,nonnull)  NSString*  userPin;

/// 开通时间
@property (strong,nonatomic,nonnull)  NSNumber*  createdTime;

/// 公网域名
@property (strong,nonatomic,nonnull)  NSString*  pubDomain;


-(id) initWithInstanceId:(NSString*) instanceId
    userPin:(NSString*)userPin
    createdTime:(NSNumber*)createdTime
    pubDomain:(NSString*)pubDomain;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end
@interface Azs :NSObject

/// az编号
@property (strong,nonatomic,nonnull)  NSString*  azId;

/// az名称
@property (strong,nonatomic,nonnull)  NSString*  azName;


-(id) initWithAzId:(NSString*) azId
    azName:(NSString*)azName;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end
@interface PageinfoVO :NSObject

/// 每页显示条数
@property (strong,nonatomic,nonnull)  NSNumber*  pageSize;

/// 当前页数
@property (strong,nonatomic,nonnull)  NSNumber*  nowPage;

/// 总记录数
@property (strong,nonatomic,nonnull)  NSNumber*  totalSize;

/// 总页数
@property (strong,nonatomic,nonnull)  NSNumber*  totalPage;


-(id) initWithPageSize:(NSNumber*) pageSize
    nowPage:(NSNumber*)nowPage
    totalSize:(NSNumber*)totalSize
    totalPage:(NSNumber*)totalPage;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end
@interface MonthDuration :NSObject

/// 日期
@property (strong,nonatomic,nonnull)  NSString*  durationMonth;

/// 时长(分钟)
@property (strong,nonatomic,nonnull)  NSNumber*  durationValue;


-(id) initWithDurationMonth:(NSString*) durationMonth
    durationValue:(NSNumber*)durationValue;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end
@interface MonthMessage :NSObject

/// 日期
@property (strong,nonatomic,nonnull)  NSString*  messageMonth;

/// 时长(分钟)
@property (strong,nonatomic,nonnull)  NSNumber*  messageValue;


-(id) initWithMessageMonth:(NSString*) messageMonth
    messageValue:(NSNumber*)messageValue;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end
@interface OnlineInfo :NSObject

/// DeviceId
@property (strong,nonatomic,nonnull)  NSString*  deviceId;

/// Online
@property (strong,nonatomic,nonnull)  NSNumber*  online;

/// LastConnectTime
@property (strong,nonatomic,nonnull)  NSString*  lastConnectTime;


-(id) initWithDeviceId:(NSString*) deviceId
    online:(NSNumber*)online
    lastConnectTime:(NSString*)lastConnectTime;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end
@interface DescribeDevicePageVo :NSObject

/// Uuid
@property (strong,nonatomic,nonnull)  NSString*  uuid;

/// InstanceId
@property (strong,nonatomic,nonnull)  NSString*  instanceId;

/// DeviceId
@property (strong,nonatomic,nonnull)  NSString*  deviceId;

/// DisplayName
@property (strong,nonatomic,nonnull)  NSString*  displayName;

/// DeviceType
@property (strong,nonatomic,nonnull)  NSString*  deviceType;

/// DeviceState
@property (strong,nonatomic,nonnull)  NSString*  deviceState;

/// OmId
@property (strong,nonatomic,nonnull)  NSString*  omId;

/// DeviceFilePath
@property (strong,nonatomic,nonnull)  NSString*  deviceFilePath;

/// OmName
@property (strong,nonatomic,nonnull)  NSString*  omName;

/// CreateTime
@property (strong,nonatomic,nonnull)  NSString*  createTime;

/// UserPin
@property (strong,nonatomic,nonnull)  NSString*  userPin;

/// ParentUuid
@property (strong,nonatomic,nonnull)  NSString*  parentUuid;

/// ParentName
@property (strong,nonatomic,nonnull)  NSString*  parentName;

/// LastConnectTime
@property (strong,nonatomic,nonnull)  NSString*  lastConnectTime;


-(id) initWithUuid:(NSString*) uuid
    instanceId:(NSString*)instanceId
    deviceId:(NSString*)deviceId
    displayName:(NSString*)displayName
    deviceType:(NSString*)deviceType
    deviceState:(NSString*)deviceState
    omId:(NSString*)omId
    deviceFilePath:(NSString*)deviceFilePath
    omName:(NSString*)omName
    createTime:(NSString*)createTime
    userPin:(NSString*)userPin
    parentUuid:(NSString*)parentUuid
    parentName:(NSString*)parentName
    lastConnectTime:(NSString*)lastConnectTime;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end
@interface DeviceEnrollVO :NSObject

/// DeviceIds
@property (strong,nonatomic,nonnull)  NSArray<NSString*>*  deviceIds;

/// ModelName
@property (strong,nonatomic,nonnull)  NSString*  modelName;

/// DeviceType
@property (strong,nonatomic,nonnull)  NSNumber*  deviceType;

/// ParentDeviceName
@property (strong,nonatomic,nonnull)  NSString*  parentDeviceName;


-(id) initWithDeviceIds:(NSArray<NSString*>*) deviceIds
    modelName:(NSString*)modelName
    deviceType:(NSNumber*)deviceType
    parentDeviceName:(NSString*)parentDeviceName;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end
@interface Service :NSObject

/// 服务名称
@property (strong,nonatomic,nonnull)  NSString*  name;

/// 服务ID
@property (strong,nonatomic,nonnull)  NSString*  serviceId;

/// 服务描述
@property (strong,nonatomic,nonnull)  NSString*  descriptionValue;

/// 服务入参,object的key为参数名称，value为参数值
@property (strong,nonatomic,nonnull)  NSObject*  input;

/// 服务出参,object的key为参数名称，value为参数值
@property (strong,nonatomic,nonnull)  NSObject*  output;

/// 结果码200:成功,400:参数错误
@property (strong,nonatomic,nonnull)  NSNumber*  code;

/// 创建时间
@property (strong,nonatomic,nonnull)  NSNumber*  createdTime;


-(id) initWithName:(NSString*) name
    serviceId:(NSString*)serviceId
    descriptionValue:(NSString*)descriptionValue
    input:(NSObject*)input
    output:(NSObject*)output
    code:(NSNumber*)code
    createdTime:(NSNumber*)createdTime;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end
@interface DeviceCredential :NSObject

/// 设备Id
@property (strong,nonatomic,nonnull)  NSString*  deviceId;

/// 设备名称
@property (strong,nonatomic,nonnull)  NSString*  deviceName;

/// 设备鉴权标识
@property (strong,nonatomic,nonnull)  NSString*  identifier;

/// 设备秘钥
@property (strong,nonatomic,nonnull)  NSString*  secret;

/// 所属产品
@property (strong,nonatomic,nonnull)  NSString*  productKey;


-(id) initWithDeviceId:(NSString*) deviceId
    deviceName:(NSString*)deviceName
    identifier:(NSString*)identifier
    secret:(NSString*)secret
    productKey:(NSString*)productKey;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end
@interface TopicList :NSObject

/// topic
@property (strong,nonatomic,nonnull)  NSString*  topic;

/// 权限
@property (strong,nonatomic,nonnull)  NSString*  authority;

/// 描述
@property (strong,nonatomic,nonnull)  NSString*  descripton;


-(id) initWithTopic:(NSString*) topic
    authority:(NSString*)authority
    descripton:(NSString*)descripton;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end
@interface DeviceVO :NSObject

/// 设备ID
@property (strong,nonatomic,nonnull)  NSString*  deviceId;

/// 设备名称
@property (strong,nonatomic,nonnull)  NSString*  deviceName;

/// 父级设备Id
@property (strong,nonatomic,nonnull)  NSString*  parentId;

/// 设备类型，同产品类型，0-普通设备，1-网关，2-Edge
@property (strong,nonatomic,nonnull)  NSString*  deviceType;

/// 设备状态，0-未激活，1-激活离线，2-激活在线
@property (strong,nonatomic,nonnull)  NSNumber*  status;

/// 产品Key
@property (strong,nonatomic,nonnull)  NSString*  productKey;

/// 设备标识符
@property (strong,nonatomic,nonnull)  NSString*  identifier;

/// 设备秘钥
@property (strong,nonatomic,nonnull)  NSString*  secret;

/// 设备描述
@property (strong,nonatomic,nonnull)  NSString*  descriptionValue;

/// 激活时间
@property (strong,nonatomic,nonnull)  NSNumber*  activatedTime;

/// 最后连接时间
@property (strong,nonatomic,nonnull)  NSNumber*  lastConnectedTime;

/// 注册时间
@property (strong,nonatomic,nonnull)  NSNumber*  createdTime;

/// 修改时间
@property (strong,nonatomic,nonnull)  NSNumber*  updatedTime;

/// 产品秘钥
@property (strong,nonatomic,nonnull)  NSString*  productSecret;

/// 产品名称
@property (strong,nonatomic,nonnull)  NSString*  productName;

/// 设备型号
@property (strong,nonatomic,nonnull)  NSString*  model;

/// 设备厂商
@property (strong,nonatomic,nonnull)  NSString*  manufacturer;

/// 是否开启动态注册,0:关闭,1:开启，开启动态注册的设备认证类型为一型一密，否则为一机一密
@property (strong,nonatomic,nonnull)  NSNumber*  dynamicRegister;


-(id) initWithDeviceId:(NSString*) deviceId
    deviceName:(NSString*)deviceName
    parentId:(NSString*)parentId
    deviceType:(NSString*)deviceType
    status:(NSNumber*)status
    productKey:(NSString*)productKey
    identifier:(NSString*)identifier
    secret:(NSString*)secret
    descriptionValue:(NSString*)descriptionValue
    activatedTime:(NSNumber*)activatedTime
    lastConnectedTime:(NSNumber*)lastConnectedTime
    createdTime:(NSNumber*)createdTime
    updatedTime:(NSNumber*)updatedTime
    productSecret:(NSString*)productSecret
    productName:(NSString*)productName
    model:(NSString*)model
    manufacturer:(NSString*)manufacturer
    dynamicRegister:(NSNumber*)dynamicRegister;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end
@interface Event :NSObject

/// 事件名称
@property (strong,nonatomic,nonnull)  NSString*  name;

/// 事件ID
@property (strong,nonatomic,nonnull)  NSString*  eventId;

/// 事件类型
@property (strong,nonatomic,nonnull)  NSString*  eventType;

/// 输出参数,object的key为参数名称，value为参数值
@property (strong,nonatomic,nonnull)  NSObject*  output;

/// 产生时间
@property (strong,nonatomic,nonnull)  NSNumber*  createdTime;


-(id) initWithName:(NSString*) name
    eventId:(NSString*)eventId
    eventType:(NSString*)eventType
    output:(NSObject*)output
    createdTime:(NSNumber*)createdTime;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end
@interface DeviceBatch :NSObject

/// 批次Id
@property (strong,nonatomic,nonnull)  NSString*  batchId;

/// 批次编号
@property (strong,nonatomic,nonnull)  NSString*  batchNumber;

/// 批次大小
@property (strong,nonatomic,nonnull)  NSNumber*  batchSize;

/// 产品名称
@property (strong,nonatomic,nonnull)  NSString*  productName;

/// 添加方式
@property (strong,nonatomic,nonnull)  NSNumber*  autoGenerated;

/// 下载链接
@property (strong,nonatomic,nonnull)  NSString*  registerResultUrl;

/// 生成时间
@property (strong,nonatomic,nonnull)  NSNumber*  createdTime;


-(id) initWithBatchId:(NSString*) batchId
    batchNumber:(NSString*)batchNumber
    batchSize:(NSNumber*)batchSize
    productName:(NSString*)productName
    autoGenerated:(NSNumber*)autoGenerated
    registerResultUrl:(NSString*)registerResultUrl
    createdTime:(NSNumber*)createdTime;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end
@interface Resource :NSObject

/// 资源ID
@property (strong,nonatomic,nonnull)  NSString*  resourceId;

/// 资源名称
@property (strong,nonatomic,nonnull)  NSString*  resourceName;


-(id) initWithResourceId:(NSString*) resourceId
    resourceName:(NSString*)resourceName;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end
@interface Proxys :NSObject

/// IoT Hub Proxy实例编号
@property (strong,nonatomic,nonnull)  NSString*  proxyId;

/// Proxy对应的用户Pin
@property (strong,nonatomic,nonnull)  NSString*  userPin;

/// IoT Hub Proxy实例创建时间
@property (strong,nonatomic,nonnull)  NSNumber*  createTime;

/// IoT Hub Proxy下执行的规则数量
@property (strong,nonatomic,nonnull)  NSNumber*  totalRuleNums;


-(id) initWithProxyId:(NSString*) proxyId
    userPin:(NSString*)userPin
    createTime:(NSNumber*)createTime
    totalRuleNums:(NSNumber*)totalRuleNums;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end
@interface Rules :NSObject

/// 规则编号
@property (strong,nonatomic,nonnull)  NSString*  ruleId;

/// 0-正常规则，1-异常规则
@property (strong,nonatomic,nonnull)  NSNumber*  ruleType;

/// 用户填写的规则信息
@property (strong,nonatomic,nonnull)  NSString*  ruleInfo;

/// 用户规则映射的jcq信息
@property (strong,nonatomic,nonnull)  NSString*  jcqInfo;


-(id) initWithRuleId:(NSString*) ruleId
    ruleType:(NSNumber*)ruleType
    ruleInfo:(NSString*)ruleInfo
    jcqInfo:(NSString*)jcqInfo;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end
@interface ProxyDetails :NSObject

/// IoT Hub Proxy实例编号
@property (strong,nonatomic,nonnull)  NSString*  proxyId;

/// Proxy对应的用户Pin
@property (strong,nonatomic,nonnull)  NSString*  userPin;

/// IoT Hub Proxy实例创建时间
@property (strong,nonatomic,nonnull)  NSNumber*  createTime;

/// IoT Hub Proxy所在区域编号
@property (strong,nonatomic,nonnull)  NSString*  regionId;

/// IoT Hub Proxy所在区域名称
@property (strong,nonatomic,nonnull)  NSString*  regionName;

/// IoT Hub Proxy所在可用区编号
@property (strong,nonatomic,nonnull)  NSString*  azId;

/// IoT Hub Proxy所在可用区名称
@property (strong,nonatomic,nonnull)  NSString*  azName;

/// IoT Hub Proxy所在VPC编号
@property (strong,nonatomic,nonnull)  NSString*  vpcId;

/// IoT Hub Proxy所在VPC名称
@property (strong,nonatomic,nonnull)  NSString*  vpcName;

/// IoT Hub Proxy所在subnet编号
@property (strong,nonatomic,nonnull)  NSString*  subnetId;

/// IoT Hub Proxy所在subnet名称
@property (strong,nonatomic,nonnull)  NSString*  subnetName;

/// 内部创建JCQ对应的accessKey
@property (strong,nonatomic,nonnull)  NSString*  jcqAccessKey;

/// 内部创建JCQ对应的Secret Access Key
@property (strong,nonatomic,nonnull)  NSString*  jcqSecretAccessKey;

/// 内部创建JCQ对应的ConsumerGroup
@property (strong,nonatomic,nonnull)  NSString*  jcqConsumerGroupId;

/// 内部创建JCQ对应的endpoint
@property (strong,nonatomic,nonnull)  NSString*  jcqEndpoint;

/// 当前Proxy中负责处理的规则总数
@property (strong,nonatomic,nonnull)  NSString*  totalRuleNums;


-(id) initWithProxyId:(NSString*) proxyId
    userPin:(NSString*)userPin
    createTime:(NSNumber*)createTime
    regionId:(NSString*)regionId
    regionName:(NSString*)regionName
    azId:(NSString*)azId
    azName:(NSString*)azName
    vpcId:(NSString*)vpcId
    vpcName:(NSString*)vpcName
    subnetId:(NSString*)subnetId
    subnetName:(NSString*)subnetName
    jcqAccessKey:(NSString*)jcqAccessKey
    jcqSecretAccessKey:(NSString*)jcqSecretAccessKey
    jcqConsumerGroupId:(NSString*)jcqConsumerGroupId
    jcqEndpoint:(NSString*)jcqEndpoint
    totalRuleNums:(NSString*)totalRuleNums;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end
@interface SharedUsers :NSObject

/// 用户Pin信息
@property (strong,nonatomic,nonnull)  NSNumber*  userPin;

/// 用户对应的资源编号
@property (strong,nonatomic,nonnull)  NSNumber*  sourceId;

/// 用户所属region
@property (strong,nonatomic,nonnull)  NSNumber*  regionName;

/// 用户开通时间
@property (strong,nonatomic,nonnull)  NSNumber*  createTime;

/// 租户状态[1-正常使用，2-欠费停服，3-软删除保护期]
@property (strong,nonatomic,nonnull)  NSNumber*  tenantStatus;

/// 在线设备数
@property (strong,nonatomic,nonnull)  NSNumber*  onDevices;

/// 日消息条数
@property (strong,nonatomic,nonnull)  NSNumber*  dailyMessages;

/// 总消息条数
@property (strong,nonatomic,nonnull)  NSNumber*  totalMessages;


-(id) initWithUserPin:(NSNumber*) userPin
    sourceId:(NSNumber*)sourceId
    regionName:(NSNumber*)regionName
    createTime:(NSNumber*)createTime
    tenantStatus:(NSNumber*)tenantStatus
    onDevices:(NSNumber*)onDevices
    dailyMessages:(NSNumber*)dailyMessages
    totalMessages:(NSNumber*)totalMessages;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end
@interface InstanceinfoVO :NSObject

/// IoT Hub实例编号
@property (strong,nonatomic,nonnull)  NSString*  instanceId;

/// IoT Hub实例名称
@property (strong,nonatomic,nonnull)  NSString*  name;

/// IoT Hub实例所属子网编号
@property (strong,nonatomic,nonnull)  NSString*  subnetId;

/// IoT Hub实例所属子网名称
@property (strong,nonatomic,nonnull)  NSString*  subnetName;

/// IoT Hub实例所属VPC编号
@property (strong,nonatomic,nonnull)  NSString*  vpcId;

/// IoT Hub实例所属VPC名称
@property (strong,nonatomic,nonnull)  NSString*  vpcName;

/// IoT Hub实例所属可用区名称[格式为可用区名称1@可用区名称2]
@property (strong,nonatomic,nonnull)  NSString*  azName;

/// IoT Hub实例提供的公网域名
@property (strong,nonatomic,nonnull)  NSString*  pubDomain;

/// IoT Hub实例提供的内网域名
@property (strong,nonatomic,nonnull)  NSString*  priDomain;

/// IoT Hub实例状态
   /// PREPARING-准备资源 |
   /// BUILDING-创建中 |
   /// RUNNING-运行中 |
   /// SUSPENDING-暂停使用
   /// 
@property (strong,nonatomic,nonnull)  NSString*  instanceStatus;

/// 100以内的进度条数值
@property (strong,nonatomic,nonnull)  NSNumber*  progressValue;

/// IoT Hub实例创建时间
@property (strong,nonatomic,nonnull)  NSNumber*  createTime;

/// IoT Hub实例到期时间
@property (strong,nonatomic,nonnull)  NSNumber*  endTime;

/// IoT Hub实例描述
@property (strong,nonatomic,nonnull)  NSString*  descriptionValue;

/// IoT Hub实例所属Region编号
@property (strong,nonatomic,nonnull)  NSString*  regionId;

/// IoT Hub实例所属Region名称
@property (strong,nonatomic,nonnull)  NSString*  regionName;

/// 支持最大在线设备数量
@property (strong,nonatomic,nonnull)  NSNumber*  maxDevices;

/// 最大支持消息数量
@property (strong,nonatomic,nonnull)  NSNumber*  maxMessages;


-(id) initWithInstanceId:(NSString*) instanceId
    name:(NSString*)name
    subnetId:(NSString*)subnetId
    subnetName:(NSString*)subnetName
    vpcId:(NSString*)vpcId
    vpcName:(NSString*)vpcName
    azName:(NSString*)azName
    pubDomain:(NSString*)pubDomain
    priDomain:(NSString*)priDomain
    instanceStatus:(NSString*)instanceStatus
    progressValue:(NSNumber*)progressValue
    createTime:(NSNumber*)createTime
    endTime:(NSNumber*)endTime
    descriptionValue:(NSString*)descriptionValue
    regionId:(NSString*)regionId
    regionName:(NSString*)regionName
    maxDevices:(NSNumber*)maxDevices
    maxMessages:(NSNumber*)maxMessages;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end
@interface InstanceInfoAsAdminVO :NSObject

/// IoT Hub实例编号
@property (strong,nonatomic,nonnull)  NSString*  instanceId;

/// IoT Hub实例名称
@property (strong,nonatomic,nonnull)  NSString*  name;

/// 创建实例的主Pin信息
@property (strong,nonatomic,nonnull)  NSString*  userPin;

/// IoT Hub实例所属子网编号
@property (strong,nonatomic,nonnull)  NSString*  subnetId;

/// IoT Hub实例所属子网名称
@property (strong,nonatomic,nonnull)  NSString*  subNetName;

/// IoT Hub实例所属VPC编号
@property (strong,nonatomic,nonnull)  NSString*  vpcId;

/// IoT Hub实例所属VPC名称
@property (strong,nonatomic,nonnull)  NSString*  vpcName;

/// IoT Hub实例所属可用区名称[格式为可用区名称1@可用区名称2]
@property (strong,nonatomic,nonnull)  NSString*  azName;

/// IoT Hub实例提供的公网域名
@property (strong,nonatomic,nonnull)  NSString*  pubDomain;

/// IoT Hub实例提供的内网域名
@property (strong,nonatomic,nonnull)  NSString*  priDomain;

/// IoT Hub实例创建时间
@property (strong,nonatomic,nonnull)  NSNumber*  createTime;

/// IoT Hub实例到期时间
@property (strong,nonatomic,nonnull)  NSNumber*  endTime;

/// IoT Hub实例删除时间
@property (strong,nonatomic,nonnull)  NSNumber*  deleteTime;

/// IoT Hub实例描述
@property (strong,nonatomic,nonnull)  NSString*  descriptionValue;

/// IoT Hub实例所属Region编号
@property (strong,nonatomic,nonnull)  NSString*  regionId;

/// IoT Hub实例所属Region名称
@property (strong,nonatomic,nonnull)  NSString*  regionName;

/// IoT Hub实例中单AZ容器节点数量[每增加1个节点，会在两个AZ下各添加一个容器]
@property (strong,nonatomic,nonnull)  NSNumber*  replicaNum;

/// 支持最大在线设备数量
@property (strong,nonatomic,nonnull)  NSNumber*  maxDevices;

/// 最大支持消息数量
@property (strong,nonatomic,nonnull)  NSNumber*  maxMessages;

/// IoT Hub实例依赖数据库实例编号
@property (strong,nonatomic,nonnull)  NSString*  rdsInstanceId;

/// IoT Hub实例依赖数据库库名
@property (strong,nonatomic,nonnull)  NSString*  rdsDatabase;

/// IoT Hub实例依赖数据库内网域名
@property (strong,nonatomic,nonnull)  NSString*  rdsHostName;

/// IoT Hub实例依赖数据库用户名
@property (strong,nonatomic,nonnull)  NSString*  rdsUserName;

/// IoT Hub实例依赖数据库密码
@property (strong,nonatomic,nonnull)  NSString*  rdsPasswd;

/// IoT Hub实例使用的Agent编号[如已删除则为空]
@property (strong,nonatomic,nonnull)  NSString*  iothubAgentId;

/// IoT Hub实例状态：
   ///   0-IOTHUB_AND_AGENT_RUNNING
   ///   1-IOTHUB_RUNNING
   ///   2-IOTHUB_SUSPEND
   ///   3-IOTHUB_TO_BE_DELETED
   ///   4-IOTHUB_UPDATING
   ///   11-CREATE_PARAMETER_GROUP_SUCCESS
   ///   12-CREATE_PARAMETER_GROUP_FAIL
   ///   13-CREATE_AGENT_SUCCESS
   ///   14-CREATE_AGENT_FAIL
   ///   15-CREATE_MYSQL_SUCCESS
   ///   16-AGENT_JVESSEL_RUNNING
   ///   17-AGENT_RUNNING
   ///   18-MYSQL_RUNNING
   ///   21-CREATE_DATABASE_SUCCESS
   ///   22-CREATE_DATABASE_FAIL
   ///   31-CREATE_ACCOUNT_SUCCESS
   ///   32-CREATE_ACCOUNT_FAIL
   ///   41-GRANT_PRIVILEGE_SUCCESS
   ///   42-GRANT_PRIVILEGE_FAIL
   ///   51-WAIT_INIT_DATABASE
   ///   52-INIT_DATABASE_SUCCESS
   ///   53-INIT_DATABASE_FAIL
   ///   61-DEL_AGENT_SUCCESS
   ///   62-DEL_AGENT_FAIL
   ///   71-WAIT_CREATE_IOTHUB
   ///   72-CREATE_IOTHUB_SUCCESS
   ///   73-CREATE_IOTHUB_JVESSEL_RUNNING
   ///   74-CREATE_IOTHUB_RUNNING
   ///   75-IOTHUB_USER_PIN_SIGNUP
   ///   79-CREATE_IOTHUB_FAIL
   /// 
@property (strong,nonatomic,nonnull)  NSNumber*  iothubStatus;


-(id) initWithInstanceId:(NSString*) instanceId
    name:(NSString*)name
    userPin:(NSString*)userPin
    subnetId:(NSString*)subnetId
    subNetName:(NSString*)subNetName
    vpcId:(NSString*)vpcId
    vpcName:(NSString*)vpcName
    azName:(NSString*)azName
    pubDomain:(NSString*)pubDomain
    priDomain:(NSString*)priDomain
    createTime:(NSNumber*)createTime
    endTime:(NSNumber*)endTime
    deleteTime:(NSNumber*)deleteTime
    descriptionValue:(NSString*)descriptionValue
    regionId:(NSString*)regionId
    regionName:(NSString*)regionName
    replicaNum:(NSNumber*)replicaNum
    maxDevices:(NSNumber*)maxDevices
    maxMessages:(NSNumber*)maxMessages
    rdsInstanceId:(NSString*)rdsInstanceId
    rdsDatabase:(NSString*)rdsDatabase
    rdsHostName:(NSString*)rdsHostName
    rdsUserName:(NSString*)rdsUserName
    rdsPasswd:(NSString*)rdsPasswd
    iothubAgentId:(NSString*)iothubAgentId
    iothubStatus:(NSNumber*)iothubStatus;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end
@interface HubInstanceBo :NSObject

/// InstanceUuid
@property (strong,nonatomic,nonnull)  NSString*  instanceUuid;

/// InstanceId
@property (strong,nonatomic,nonnull)  NSString*  instanceId;

/// InstanceName
@property (strong,nonatomic,nonnull)  NSString*  instanceName;

/// Region
@property (strong,nonatomic,nonnull)  NSString*  region;


-(id) initWithInstanceUuid:(NSString*) instanceUuid
    instanceId:(NSString*)instanceId
    instanceName:(NSString*)instanceName
    region:(NSString*)region;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end
@interface DataVO :NSObject

/// 系统流水号
@property (strong,nonatomic,nonnull)  NSString*  idValue;

/// 实例名称
@property (strong,nonatomic,nonnull)  NSString*  name;

/// 子网编号
@property (strong,nonatomic,nonnull)  NSString*  subNetId;

/// 子网名称
@property (strong,nonatomic,nonnull)  NSString*  subNetName;

/// VPC编号
@property (strong,nonatomic,nonnull)  NSString*  vpcId;

/// VPC名称
@property (strong,nonatomic,nonnull)  NSString*  vpcName;

/// 可用区名称
@property (strong,nonatomic,nonnull)  NSString*  azName;

/// 公网域名
@property (strong,nonatomic,nonnull)  NSString*  pubDomain;

/// 内网域名
@property (strong,nonatomic,nonnull)  NSString*  priDomain;

/// IoT Hub实例状态[10~100为创建中,0或1-运行中,2-欠费停服,3-待删除]
@property (strong,nonatomic,nonnull)  NSNumber*  status;

/// 创建时间
@property (strong,nonatomic,nonnull)  NSNumber*  createTime;

/// 实例到期时间
@property (strong,nonatomic,nonnull)  NSNumber*  endTime;

/// 最大在线设备数
@property (strong,nonatomic,nonnull)  NSNumber*  maxDevices;

/// 最大消息条数
@property (strong,nonatomic,nonnull)  NSNumber*  maxMessage;

/// 实例编号
@property (strong,nonatomic,nonnull)  NSString*  instanceId;

/// 实例类型[0-独享，1-共享]
@property (strong,nonatomic,nonnull)  NSString*  instanceType;


-(id) initWithId:(NSString*) idValue
    name:(NSString*)name
    subNetId:(NSString*)subNetId
    subNetName:(NSString*)subNetName
    vpcId:(NSString*)vpcId
    vpcName:(NSString*)vpcName
    azName:(NSString*)azName
    pubDomain:(NSString*)pubDomain
    priDomain:(NSString*)priDomain
    status:(NSNumber*)status
    createTime:(NSNumber*)createTime
    endTime:(NSNumber*)endTime
    maxDevices:(NSNumber*)maxDevices
    maxMessage:(NSNumber*)maxMessage
    instanceId:(NSString*)instanceId
    instanceType:(NSString*)instanceType;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end
@interface ModulePageVo :NSObject

/// Module唯一标识
@property (strong,nonatomic,nonnull)  NSString*  uuid;

/// Module编号
@property (strong,nonatomic,nonnull)  NSString*  moduleId;

/// Module显示名称
@property (strong,nonatomic,nonnull)  NSString*  moduleName;

/// 设备编号
@property (strong,nonatomic,nonnull)  NSString*  deviceId;

/// 设备显示名称
@property (strong,nonatomic,nonnull)  NSString*  deviceName;

/// 设备类型[0-普通设备,1-云网关设备,2-Edge设备]
@property (strong,nonatomic,nonnull)  NSNumber*  deviceType;

/// 模块部署状态[0-部署完成,1-待部署]
@property (strong,nonatomic,nonnull)  NSNumber*  moduleStatus;

/// 模块类型版本
@property (strong,nonatomic,nonnull)  NSString*  moduleTypeVersion;


-(id) initWithUuid:(NSString*) uuid
    moduleId:(NSString*)moduleId
    moduleName:(NSString*)moduleName
    deviceId:(NSString*)deviceId
    deviceName:(NSString*)deviceName
    deviceType:(NSNumber*)deviceType
    moduleStatus:(NSNumber*)moduleStatus
    moduleTypeVersion:(NSString*)moduleTypeVersion;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end
@interface UserDetails :NSObject

/// 用户Pin
@property (strong,nonatomic,nonnull)  NSString*  userPin;

/// 所在区名称
@property (strong,nonatomic,nonnull)  NSString*  regionName;

/// 用户状态 [1-运行中，2-欠费停服，3-停服删除]
@property (strong,nonatomic,nonnull)  NSNumber*  userStatus;

/// 开通时间
@property (strong,nonatomic,nonnull)  NSNumber*  signTime;

/// 计费类型
@property (strong,nonatomic,nonnull)  NSString*  chargeType;

/// 产品总数
@property (strong,nonatomic,nonnull)  NSNumber*  productNum;

/// 设备总数
@property (strong,nonatomic,nonnull)  NSNumber*  deviceNum;

/// 在线设备数
@property (strong,nonatomic,nonnull)  NSNumber*  onDevices;

/// 设备连接总时长
@property (strong,nonatomic,nonnull)  NSNumber*  maxOnlineTime;

/// 总消息数
@property (strong,nonatomic,nonnull)  NSNumber*  totalMessages;


-(id) initWithUserPin:(NSString*) userPin
    regionName:(NSString*)regionName
    userStatus:(NSNumber*)userStatus
    signTime:(NSNumber*)signTime
    chargeType:(NSString*)chargeType
    productNum:(NSNumber*)productNum
    deviceNum:(NSNumber*)deviceNum
    onDevices:(NSNumber*)onDevices
    maxOnlineTime:(NSNumber*)maxOnlineTime
    totalMessages:(NSNumber*)totalMessages;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end
@interface ChildDevices :NSObject

/// 设备编号
@property (strong,nonatomic,nonnull)  NSString*  deviceId;

/// 设备名称
@property (strong,nonatomic,nonnull)  NSString*  deviceName;

/// devvice-service名称
@property (strong,nonatomic,nonnull)  NSString*  deviceServiceName;

/// 在线状态
@property (strong,nonatomic,nonnull)  NSString*  online;


-(id) initWithDeviceId:(NSString*) deviceId
    deviceName:(NSString*)deviceName
    deviceServiceName:(NSString*)deviceServiceName
    online:(NSString*)online;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end
@interface ChildModules :NSObject

/// 模块编号
@property (strong,nonatomic,nonnull)  NSString*  moduleId;

/// 模块名称
@property (strong,nonatomic,nonnull)  NSString*  moduleName;

/// 模块类型版本
@property (strong,nonatomic,nonnull)  NSString*  moduleTypeVersion;

/// 物模型名称
@property (strong,nonatomic,nonnull)  NSString*  omName;

/// 物模型描述
@property (strong,nonatomic,nonnull)  NSString*  omDesc;

/// 模块状态
@property (strong,nonatomic,nonnull)  NSString*  moduleState;


-(id) initWithModuleId:(NSString*) moduleId
    moduleName:(NSString*)moduleName
    moduleTypeVersion:(NSString*)moduleTypeVersion
    omName:(NSString*)omName
    omDesc:(NSString*)omDesc
    moduleState:(NSString*)moduleState;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end
@interface EdgeInfoVO :NSObject

/// 系统流水号
@property (strong,nonatomic,nonnull)  NSString*  uuid;

/// Edge的唯一编号
@property (strong,nonatomic,nonnull)  NSString*  edgeId;

/// Edge的名称
@property (strong,nonatomic,nonnull)  NSString*  edgeName;

/// 是否在线【0-离线，1-在线】
@property (strong,nonatomic,nonnull)  NSNumber*  edgeStatus;

/// 边缘计算说明
@property (strong,nonatomic,nonnull)  NSString*  edgeDesc;

/// Edge版本
@property (strong,nonatomic,nonnull)  NSString*  edgeVersion;

/// Edge创建时间
@property (strong,nonatomic,nonnull)  NSString*  createTime;

/// 最后在线时间
@property (strong,nonatomic,nonnull)  NSString*  lastOnlineTime;

/// 最后开机时间
@property (strong,nonatomic,nonnull)  NSString*  lastTurnOnTime;

/// IoT Hub实例编号
@property (strong,nonatomic,nonnull)  NSString*  iothubInstanceId;

/// IoT Hub实例名称
@property (strong,nonatomic,nonnull)  NSString*  iothubInstanceName;


-(id) initWithUuid:(NSString*) uuid
    edgeId:(NSString*)edgeId
    edgeName:(NSString*)edgeName
    edgeStatus:(NSNumber*)edgeStatus
    edgeDesc:(NSString*)edgeDesc
    edgeVersion:(NSString*)edgeVersion
    createTime:(NSString*)createTime
    lastOnlineTime:(NSString*)lastOnlineTime
    lastTurnOnTime:(NSString*)lastTurnOnTime
    iothubInstanceId:(NSString*)iothubInstanceId
    iothubInstanceName:(NSString*)iothubInstanceName;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end
@interface EdgePageVo :NSObject

/// Edge编号
@property (strong,nonatomic,nonnull)  NSString*  edgeId;

/// Edge显示名称
@property (strong,nonatomic,nonnull)  NSString*  edgeName;

/// Edge状态
@property (strong,nonatomic,nonnull)  NSString*  edgeState;

/// 物模型名称
@property (strong,nonatomic,nonnull)  NSString*  omName;

/// 最后在线时间
@property (strong,nonatomic,nonnull)  NSString*  lastOnlineTime;


-(id) initWithEdgeId:(NSString*) edgeId
    edgeName:(NSString*)edgeName
    edgeState:(NSString*)edgeState
    omName:(NSString*)omName
    lastOnlineTime:(NSString*)lastOnlineTime;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end
@interface Product :NSObject

/// 产品名称
@property (strong,nonatomic,nonnull)  NSString*  productName;

/// 产品ID
@property (strong,nonatomic,nonnull)  NSString*  productId;

/// 0：设备。设备不能挂载子设备。可以直连物联网平台，也可以作为网关的子设备连接物联网平台
   /// 1：网关。网关可以挂载子设备，具有子设备管理模块，维持子设备的拓扑关系，和将拓扑关系同步到物联网平台
   /// 
@property (strong,nonatomic,nonnull)  NSNumber*  productType;

/// 产品Key
@property (strong,nonatomic,nonnull)  NSString*  productKey;

/// 创建时间，创建时间，时间为东八区（UTC/GMT+08:00）
@property (strong,nonatomic,nonnull)  NSNumber*  createdTime;

/// 产品类型，如自定义等
@property (strong,nonatomic,nonnull)  NSString*  templateName;


-(id) initWithProductName:(NSString*) productName
    productId:(NSString*)productId
    productType:(NSNumber*)productType
    productKey:(NSString*)productKey
    createdTime:(NSNumber*)createdTime
    templateName:(NSString*)templateName;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end
@interface RegionInfo :NSObject

/// region编号
@property (strong,nonatomic,nonnull)  NSString*  regionId;

/// region名称
@property (strong,nonatomic,nonnull)  NSString*  regionName;

/// AZ集合
@property (strong,nonatomic,nonnull)  NSArray<Azs*>*  azInfo;


-(id) initWithRegionId:(NSString*) regionId
    regionName:(NSString*)regionName
    azInfo:(NSArray<Azs*>*)azInfo;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end
@interface SharedUserPage :NSObject

/// 总用户数
@property (strong,nonatomic,nonnull)  NSNumber*  totalSize;

/// 总页数
@property (strong,nonatomic,nonnull)  NSNumber*  totalPage;

/// 每页条数
@property (strong,nonatomic,nonnull)  NSNumber*  pageSize;

/// 当前页
@property (strong,nonatomic,nonnull)  NSNumber*  nowPage;

/// 用户信息列表
@property (strong,nonatomic,nonnull)  NSArray<SharedUsers*>*  users;


-(id) initWithTotalSize:(NSNumber*) totalSize
    totalPage:(NSNumber*)totalPage
    pageSize:(NSNumber*)pageSize
    nowPage:(NSNumber*)nowPage
    users:(NSArray<SharedUsers*>*)users;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end

#endif /* IothubModel_h */
